package com.dao;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import com.pro.bean.Card_Group;
import com.pro.bean.Groups;
import com.pro.bean.Info;
import com.pro.bean.Mark;
import com.pro.bean.Unit;
import com.pro.bean.Users;
import com.pro.bean.Visit_Log;
import com.songcy.dao.InfoDao;

public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			ObjectDao objectDao  = new ObjectDao();
			Groups o = new Groups();
			Info info = new Info();
			Mark mark = new Mark();
			Users user = new Users();
			user.setCrtcmp(2);
			user.setPassword("asdf");
			user.setUnitid(2);
			user.setUsername("hehe");
			user.setUsertype(2);
			java.util.Date d = new Date();
		    java.sql.Date operatorTime = new java.sql.Date(d.getYear(),d.getMonth(),d.getDay());
			user.setLastlogtime(operatorTime);
			Unit unit = new Unit();
			Visit_Log vlog = new Visit_Log();
			vlog.setUnitId(1);
			Card_Group cardGroup = new Card_Group();
			cardGroup.setCardId(1);
			cardGroup.setGroupId(3);
			o.setGroupid(10);
//			try {
//				objectDao.add(o, ObjectDao.NOTINSERTID);
//				objectDao.add(info, ObjectDao.NOTINSERTID);
//				objectDao.add(mark,ObjectDao.NOTINSERTID);
//				objectDao.add(user,ObjectDao.NOTINSERTID);
//				objectDao.add(unit,ObjectDao.NOTINSERTID);
//				objectDao.add(vlog,ObjectDao.NOTINSERTID);
//				objectDao.add(cardGroup,ObjectDao.INSERTALL);
//			} catch (SecurityException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} catch (NoSuchMethodException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			
//			info.setCardid(5);
//			java.util.Date d = new Date();
//		    java.sql.Date operatorTime = new java.sql.Date(d.getYear(),d.getMonth(),d.getDay());
//			info.setUptime(operatorTime);
//			try {
//				objectDao.updates(info);
//				//objectDao.updates(mark);
//				objectDao.updates(user);
//				objectDao.updates(unit);
//				objectDao.updates(vlog);
//				objectDao.updates(o);
//				
//			} catch (IllegalArgumentException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} catch (SecurityException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} catch (IllegalAccessException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} catch (InvocationTargetException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} catch (NoSuchMethodException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			
			//test add 
			//objectDao.add(o);
			
			/*
			 * test findall
			 */
			List list ;//= objectDao.findall(o);
//			System.out.println("list size : "+list.size());
//			list = objectDao.findall(mark);
//			System.out.println("list size : "+list.size());
//			list = objectDao.findall(user);
//			System.out.println("list size : "+list.size());
//			list = objectDao.findall(vlog);
//			System.out.println("list size : "+list.size());
//			list = objectDao.findall(cardGroup);
//			System.out.println("list size : "+list.size());
//			list = objectDao.findall(unit);
//			System.out.println("list size : "+list.size());
//			list = objectDao.findall(info);
//			System.out.println("list size : "+list.size());
//			Iterator it= list.iterator();
//			while(it.hasNext())
//			{
//				Groups infoo = (Groups)it.next();
//				System.out.println("adress ->"+infoo.getGroupnote()+"<-");
//			}
//			System.out.println("------------");
			
			
			/*
			 * test findby id
			 */
			List l = objectDao.find(2, unit);
			Iterator it = l.iterator();
			while(it.hasNext())
			{
				Unit infoo = (Unit)it.next();
				System.out.println("adress ->"+infoo.getUnitname()+"<-");
			}
			
			/*
			 * test deleteby id
			 */
			
			//objectDao.delete(4, o);
			/*
			InfoDao infodao = new InfoDao();
			for(int i=0;i<o.getClass().getMethods().length;++i)
			{
				Method f = o.getClass().getMethods()[i];
				
				Type type[] = f.getGenericParameterTypes();
				 if(f.getName().startsWith("set") && type[0] == int.class)
				 {
					 System.out.println("m: "+f.getName());
					 try {
						f.invoke(o, 3);
					} catch (IllegalArgumentException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IllegalAccessException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (InvocationTargetException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				 }
			}
			
			try {
				objectDao.updates(o);
			} catch (IllegalArgumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			*/
	}

}
